In software engineering, a plugin is a set of software components that adds specific abilities to a larger software application. Plugins may enable customizing the functionality of a host application. The host application may provide services which the plugin can use, including a way for plugins to register themselves with the host application and a protocol for the host application to exchange data with plugins. When a plugin registers, the existence of the plugin is recorded, and a unique identifier may be associated with the plugin. Plugins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plugins, and when the invention described in this disclosure is implemented, it is possible for end-users to add and update plugins without needing to make changes to the host application.
In software engineering, an application context refers to the minimal set of data used by a task that defines the initial configuration and execution state of that task (e.g., a process or a job) that must be saved to allow the task to be interrupted and restarted. The word “context” may be used interchangeably to refer to two different, but related, concepts: 1) information “carried around” within the system describing the current state of elements or processes (e.g., a web request carries information describing the message, and in a typical web framework this is called the “Request Context”); or 2) the data structure used to hold this information. The software container that holds the context for the Request Context may also be called the Request Context.
There are several disadvantages if more than one plugin uses the same application context. For example, plugins may not be properly isolated from each other, and dynamic loading of plugins may not be supported.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.